Attribute and topology based change detection in a constellation of previously detected objects

ABSTRACT

A system that applies attribute and topology based change detection to networks of objects that were detected on previous scans of a structure, roadway, or area of interest. The attributes capture properties or characteristics of the previously detected objects, such as location, time of detection, size, elongation, orientation, etc. The topology of the network of previously detected objects is maintained in a constellation database that stores attributes of previously detected objects and implicitly captures the geometrical structure of the network. A change detection system detects change by comparing the attributes and topology of new objects detected on the latest scan to the constellation database of previously detected objects.

CROSS-REFERENCE TO RELATED APPLICATION(S)

This application claims the benefit of U.S. Provisional Patent Application No. 61/377,319 (Attorney Docket No. 77518.8003US00) filed Aug. 26, 2010, entitled “COMPUTATIONAL SYSTEM FOR DETECTING BURIED OBJECTS IN SUBSURFACE TOMOGRAPHY IMAGES RECONSTRUCTED FROM MULTISTATIC ULTRA WIDEBAND GROUND PENETRATING RADAR DATA,” and U.S. Provisional Patent Application No. 61/377,324 (Attorney Docket No, 77518.8004US00), filed Aug. 26, 2010, entitled “DART-BASED THREAT ASSESSMENT FOR BURIED OBJECTS DETECTED WITH A GROUND PENETRATING RADAR OVER TIME,” which are incorporated herein by reference in their entirety.

This application is related to U.S. patent application Ser. No. ______ (Attorney Docket No. 77518.8003US01), filed Aug. 26, 2011, entitled “REAL-TIME SYSTEM FOR IMAGING AND OBJECT DETECTION WITH A MULTISTATIC GPR ARRAY,” U.S. patent application Ser. No. ______ (Attorney Docket No. 77518.8005US00), filed Aug. 26, 2011, entitled “DISTRIBUTED ROAD ASSESSMENT SYSTEM,” and U.S. patent application Ser. No. ______ (Attorney Docket No. 77518.8006US00), filed Aug. 26, 2011, entitled “CLASSIFICATION OF SUBSURFACE OBJECTS USING SINGULAR VALUES DERIVED FROM SIGNAL FRAMES,” which are incorporated herein by reference in their entirety.

STATEMENT REGARDING FEDERALLY SPONSORED RESEARCH

The United States Government has rights in this invention pursuant to Contract No. DE-AC52-07NA27344 between the U.S. Department of Energy and Lawrence Livernmore National Security, LLC, for the operation of Lawrence Livermore National Laboratory.

BACKGROUND

Many scientific, engineering, medical, and other technologies seek to detect the presence of an object within a medium. For example, some technologies detect the presence of (i) buried landmines in a roadway or a field for military or humanitarian purposes, or (ii) potentially hidden explosives emplaced above ground level among man-made clutter. Such technologies may use ultra wideband penetrating radar technologies, such as ground-penetrating radar (“GPR”) antennas that are mounted on the front of a vehicle that travels down a roadway or across a field. The antennas could be directed into the ground with the soil being the medium and the top of the soil or pavement being the surface. In this case, GPR systems can be used to detect not only metallic objects but also non-metallic objects whose dielectric properties are sufficiently different from those of the soil. When a radar signal strikes a subsurface object, it is reflected back as a return signal to a receiver. Current GPR systems typically analyze the strength or amplitude of the return signals directly to identify the presence of the object, Some GPR systems may, however, generate tomography images from the return signals. In the medical field, computer-assisted tomography uses X-rays to generate tomography images for detecting the presence of abnormalities (i.e., subsurface objects) within a body. In the engineering field, GPR systems have been designed to generate spatial images of areas below ground level, areas above ground level that may contain emplaced explosives that are potentially hidden, or the interior of concrete structures such as bridges, dams, and containment vessels to assist in assessing the integrity of the structures. In such images, the objects of interest tend to appear as distinct bright spots. In addition to referring to a foreign object that is within a medium, the term “object” also refers to any characteristic of the medium (e.g., crack in the medium and change in medium density) that is to be detected.

Some current technologies seek to detect the presence of new objects that were not detected in previous passes. For example, a convoy of military vehicles may travel over a certain roadway fairly often. If access to the roadway is not tightly controlled, the military may need to check, each time a convoy is to travel down the roadway, for the presence of landmines or other objects that may pose a hazard to the convoy. As another example, a civil engineering firm may check bridges, dams, and other structures on a reaular basis (e.g., yearly) for the presence of new subsurface defects (e.g., cracks). Each time the structure, roadway or area is scanned, large amounts of data may be collected and processed. For example, the scan of the roadway may collect GPR return signals every few centimeters. GPR systems may generate image frames from the return signals and detect subsurface objects in those image frames. When these GPR systems have access to data from previous scans of that structure or roadway, the GPR systems may detect change by comparing (i) images reconstructed along the latest scan to images reconstructed along previous scans, or (ii) newly detected objects to previously detected objects.

Current penetrating radar systems do not use results from previous scans to perform change detection for objects in real-time. A major hurdle in achieving this goal is that the cost of storing the vast amounts of data collected from previous scans and comparing data from those previous scans to the latest scan may be prohibitive. A real-time system needs to process the return signals from successive sampling locations of the vehicle down-track so that, in the steady state, the return signals for one sampling location are processed within the time between samplings. Moreover, in the case of a vehicle that detects landmines, a real-time system may need to detect the presence of the landmine in time to stop the vehicle collecting the return signals before hitting the landmine,

SUMMARY Attribute and Topology Based Chanae Detection in a Constellation of Previously, Detected Objects

A method in a computing device for determining whether a designated newly detected object represents an object that does not correspond to an object is a constellation of previously detected objects is provided. The method comprises, for each of a plurality of edge attributes, providing a likelihood function a value for the edge attribute; selecting a root previously detected object and a root newly detected object as having a root correspondence; calculating previous values for edge attributes for edges connecting the previously detected object to the root previously detected object from attributes of the previously detected objects; calculating new values for edge attributes for edges connecting newly detected objects to the root newly detected object from attributes of the newly detected objects; and indicating that the designated newly detected object is not a previously detected object based on combining a likelihood for each edge attribute, the likelihood for an edge attribute generated by the likelihood function for that edge attribute applied to the previous value of that edge attribute given the new value of that edge attribute. The method may also include assigning a cost to each pair of a newly detected object and a previously detected object, the cost being derived from the detection fitnesses and combined likelihoods of the edge attributes that define topological consistency and applying a minimal cost assignment algorithm to the costs to identify possible correspondences between each newly detected object and a previously detected object. The method may also include indicating a newly detected object corresponds to a previously detected object based on assignment of the minimal cost assignment algorithm. The method may also include generating a change index for the designated newly detected object indicating whether the designated newly detected object does not correspond to a previously detected object based on a minimum computed assignment costs to the previously detected objects. The method may also be wherein the change index is further based on fitness of detection of the object. The method may also be wherein the attributes of the objects are selected from a group consisting of location of the object, time the object was last detected, angle of long axis of the object, and length and width of the object. The method may also be wherein the edge attributes are selected from a group consisting of a pointing vector from a root detected object to a leaf detected object, difference in times of most recent detection of the root detected object and the leaf detected object, angle between long axis of the root or leaf detected object and vector from that root detected object to the leaf detected object, angle from a vector from the root detected object to a first leaf detected object to a vector from the root detected object to the leaf detected object, and angle between the long axis of the root detected object and the long axis of the leaf detected object.

A computer-readable storage device storing computer-executable instructions for controlling a computing device to identify newly detected objects that correspond to previously detected objects is provided. The identifying performed by method comprising: for each of a plurality pairs of a previously detected object and a newly detected object, generating a score based on a likelihood that the previously detected object corresponds to the newly detected object; generating a mapping from newly detected objects to corresponding previously detected object based on the generated scores; and for each newly detected object that is mapped to a previously detected object, indicating that the newly detected object corresponds to that previously detected object. The method may also be wherein the generating of the mapping includes apply a minimal cost assignment algorithm to costs represented by the generate scores. The method may also be wherein when no previously detected object maps to a newly detected object, indicating that the newly detected object is not a previously detected object. The method may also include, for each of a plurality of edge attributes, providing a likelihood function a value for the edge attribute; selecting a root previously detected object and a root newly detected object as having a root correspondence; calculating previous values for edge attributes for edges connecting the previously detected object to the root previously detected object from attributes of the previously detected objects; calculating new values for edge attributes for edges connecting newly detected objects to the root newly detected object from attributes of the newly detected objects; and generating the likelihood by combining a likelihood for each edge attribute, the likelihood for an edge attribute generated by the likelihood function for that edge attribute applied to the previous value of that edge attribute given the new value of that edge attribute. The method may also be wherein selecting a root previously detected object and a root newly detected object as having a root correspondence includes for pairs of a previously detected object and a newly detected object, evaluating the objects of the pair as having a root correspondence by calculating a mapping efficiency indicating how well the newly detected object corresponds to the previously detected object based on locations of the other newly detected objects in a vicinity of a root object relative to locations of other previously detected objects in the vicinity of a root object. The method may also be wherein the objects are detected based on return signals acquired by receivers from ground-penetrating radar signals emitted by transmitters.

A computing device for identifying newly detected objects that do not correspond to a previously detected object is provided. The computing device comprises a component that, for each of a plurality of pairs of a previously detected object and a newly detected object, generates a score based on a likelihood that the previously detected object corresponds to the recently detected object; a component that generates a mapping from newly detected objects to corresponding previously detected objects based on the generated scores; and a component that, for each newly detected object that is not mapped to a previously detected object, indicating that the newly detected object does not correspond to a previously detected object. The computing device may also be wherein the component that generates the mapping applies a minimal cost assignment algorithm to costs represented by the generate scores. The computing device may also be include a component that selects a root previously detected object and a root newly detected object as having a root correspondence; calculates previous values for edge attributes for edges connecting the previously detected object to the root previously detected object from attributes of the previously detected objects; calculates new values for edge attributes for edges connecting newly detected objects to the root newly detected object from attributes of the newly detected objects; and generates the likelihood by combining a likelihood for each edge attribute, the likelihood for an edge attribute generated by the likelihood function for that edge attribute applied to the previous value of that edge attribute given the new value of that edge attribute. The computing device may also be wherein the component that selects a root previously detected object and a root newly detected object as having a root correspondence, for pairs of a previously detected object and a newly detected object, calculates a mapping efficiency indicating how well the newly detected object corresponds to the previously detected object based on locations of the other newly detected objects relative to locations of other previously detected objects. The computing device may also be wherein the objects are detected based on return signals acquired by receivers from ground-penetrating radar signals emitted by transmitters. The computing device may also be wherein the component that generates the mapping applies a minimal cost assignment algorithm to costs represented by the generate scores.

Determinina,Root Correspondence between Previous) and Newly Detected Objects

A method in a computing device for identifying a root correspondence for previously detected objects and newly detected objects is provided. The method comprises, for pairs of a previously detected object and a newly detected object, evaluating the objects of the pair as having a root correspondence by calculating a mapping efficiency indicating how well the newly detected object corresponds to the previously detected object based on locations of the other newly detected objects relative to locations of other previously detected objects; and selecting a pair of a previously detected object and a newly detected object as having a root correspondence based on the calculated mapping efficiency of that pair. The method may also be wherein the mapping efficiency is a fraction of newly detected objects that are proximate to a previously detected object when spatially shifted by an offset from the newly detected object of the pair to the previously detected object of the pair. The method may also be wherein the selected pair is the pair with the largest fraction. The method may also include, when a pair has a mapping efficiency that satisfies a root correspondence criterion, designating that pair as having a root correspondence without calculating the mapping efficiency of other pairs. The method may also be include prior to calculating the mapping efficiency, generating a grid whose grid elements represent a volume within a change detection window, with each grid element indicating whether a previously detected object is positioned within the volume that the grid element represents; and wherein the mapping efficiency calculation includes: determining, for each other newly detected object, the grid element that contains the newly detected object when the newly detected object is spatially shifted by an offset from the newly detected object of the pair to the previously detected object of the pair; and increasing the mapping efficiency when the determined grid element contains a previously detected object. The method may also be wherein the calculation of mapping efficiency includes determining whether attributes of the previously detected object and the newly detected object of the pair are consistent with being the same object; and when the attributes are determined to be inconsistent, prohibiting the selection of the pair as having a root correspondence, The method may also be wherein the objects are subsurface objects within a medium,

A computer-readable storage device storing computer-executable instructions for controlling a computing device to identifying a root correspondence for previously detected object and newly detected objects is provided. The identifying is performed by a method comprising: accessing a data store storing of constellation of previously detected objects, each previously detected object having a location; receiving an indication of newly detected objects, each newly detected object having a location; for pairs of a previously detected object and a newly detected object, calculating a mapping efficiency indicating how well the newly detected object corresponds to the previously detected object based on locations of the other newly detected objects relative to locations of other previously detected objects; and selecting a pair of a previously detected object and a newly detected object as having a root correspondence based on the calculated mapping efficiencies for the pairs. The method may also be wherein the mapping efficiency is a fraction of the other newly detected objects that are proximate to another previously detected object when spatially shifted by an offset from the newly detected object of the pair to the previously detected object of the pair. The method may also be wherein the selected pair is the pair with the largest fraction. The method may also include, when a pair has a mapping efficiency that satisfies a root correspondence criterion, designating that pair as having a root correspondence without calculating the mapping efficiency of other pairs. The method may also include: generating a grid with grid elements that each represent a volume within a change detection window that includes the newly detected objects, each grid element indicating whether a previously detected object is positioned within the volume that the grid element represents; and wherein the mapping efficiency calculation includes, for each other newly detected object, determining the grid element that contains the newly detected object when the newly detected object is spatially shifted by an offset from the newly detected object of the pair to the previously detected object of the pair; and increasing the mapping efficiency when the determined grid element contains a previously detected object. The method may also be wherein the calculation of mapping efficiency includes determining whether attributes of the previously detected object and the newly detected object of the pair are consistent with being the same object; and when the attributes are determined to be inconsistent, prohibiting the selection of the pair as having a root correspondence.

A computing device for identifying a root correspondence for previously detected objects and newly detected objects is provided. The computing device comprises a component that determines how well the newly detected object corresponds to the previously detected object based on locations of the other newly detected objects relative to locations of other previously detected objects; and a component that selects a pair based on the determination. The computing device may also be wherein the component that determines of how well the objects of the pair correspond by calculating a mapping efficiency based on the location of the other newly detected objects and the other previously detected objects. The computing device may also be wherein the mapping efficiency is a fraction of newly detected objects that are proximate to a previously detected object when spatially shifted by an offset from the newly detected object of the pair to the previously detected object of the pair. The computing device may also be wherein, when a pair has a mapping efficiency that satisfies a root correspondence criterion, that pair is designated as having a root correspondence without calculating the mapping efficiency for other pairs. The computing device may also be wherein the component, that determines how well the newly detected object corresponds to the previously detected object, increases the mapping efficiency of the pair for each other newly detected object when spatially shifted by an offset from the newly detected object of the pair to the previously detected object of the pair is near a previously detected object. The computing device may also be wherein the objects are subsurface objects within a medium. The computing device may also include a component that detects objects based on return signals acquired by receivers from medium-penetrating radar signals emitted by transmitters into the medium.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram that illustrates conceptually a scan.

FIG. 2 is a block diagram that illustrates the overall flow of the change detection system in some embodiments.

FIG. 3 illustrates a distributionally attributed relational tree with N_(V) vertices.

FIG. 4 illustrates the process of assigning previously detected objects to newly detected objects.

FIG. 5 is a block diagram of the components of the change detection system in some embodiments.

FIG. 6 is a flow diagram that illustrates the processing of the “find root correspondence” component of the change detection system in some embodiments.

FIG. 7 is a flow diagram that illustrates the processing of the “compute mapping efficiency” component of the change detection system in some embodiments.

FIG. 8 is a flow diagram that illustrates the processing of the “generate cost matrix” component of the change detection system in some embodiments.

FIG. 9 is a flow diagram that illustrates the processing of the “compute topological consistency” component of the change detection system in some embodiments.

FIG. 10 is a flow diagram that illustrates the processing of the “compute change indices” component of the change detection system in some embodiments.

FIG. 11 is a flow diagram that illustrates the processing of the “update constellation database” component of the change detection system in some embodiments.

DETAILED DESCRIPTION

A method and system is provided that applies attribute and topology based change detection to networks of objects that were detected on previous scans of a structure, roadway, or area of interest. The attributes capture properties or characteristics of the previously detected objects, such as location, time of detection, size, elongation, orientation, etc. The topology of the network of previously detected objects (the geometrical structure of the network in xyz space) is maintained in a constellation database that stores attributes of previously detected objects and implicitly captures the geometrical structure of the network. In some embodiments, a change detection system detects change by comparing the attributes and topology of new objects detected on the latest scan to the constellation database of previously detected objects. The change detection system that detects objects within a scan may employ an object detection system that uses conventional detection techniques. In some embodiments, the objects are detected using the object detection system described in U.S. patent application Ser. No. ______ (Attorney Docket No. 77518.8003US1), entitled “REAL-TIME SYSTEM FOR IMAGING AND OBJECT DETECTION WITH A MULTISTATIC GPR ARRAY,” which is being filed concurrently and is hereby incorporated by reference. The change detection system maintains a constellation database that contains aggregate information, including aggregate values of attributes over prior instances of specific objects that were detected in scans prior to the latest scan. When the change detection system receives information on newly detected objects on the latest scan, it evaluates how well the newly detected objects correspond to previously detected objects topologically and in terms of attributes. The change detection system initially selects a previously detected object that appears to correspond to a newly detected object (in the sense that they topologically appear to be the same object) using a spatial network correspondence algorithm. Such a topological correspondence is referred to as the “root correspondence”. The change detection system evaluates the degree of correspondence between other newly detected objects and other previously detected objects in the vicinity based on this root correspondence. The root correspondence algorithm may, for example, select a previously detected object and a newly detected object that are topologically consistent and have similar attributes. Once the change detection system selects a pair of newly and previously detected objects as the root correspondence, it calculates a “cost” associated with pairs of other newly and previously detected objects in the vicinity of the root correspondence. This cost reflects the belief that the newly detected object of the non-root pair corresponds to the previously detected object of that pair. For example, a low cost may indicate that the objects more likely correspond. The change detection system may then generate a change index for each newly detected object to quantify the belief that it might not have been previously detected (and thus constitute a change). For example, a high change index may indicate that the newly detected object is more likely to have never been detected on any previous scan. The change detection system may set the change index for a newly detected object to be the cost of assigning that object to the previously detected object that it best corresponds with based on both attributes and topological consistency. The change detection system may determine a likely correspondence between previously and newly detected objects using a standard minimal cost assignment algorithm applied to spatially localized sets of previously and newly detected objects. After determining the optimal correspondence, the change detection system updates information in the constellation database of previously detected objects with the values of the attributes of the corresponding newly detected objects, as these attributes may vary over time due to variations in scan path (e.g., direction of travel or closeness to the center of the roadway), changes in the surface (e.g., ruts in the roadway after a rainstorm), and so on. If a newly detected object corresponds to no previously detected object, then it may constitute a change. If so, the change detection system adds that object as an additional object to the constellation database, and it will be treated as a previously detected object by subsequent scans.

In some embodiments, the change detection system identifies the root correspondence for previously and newly detected objects by calculating a mapping efficiency for pairs of previously and newly detected objects. Mapping efficiency reflects the degree of topological match between previously and newly detected objects within a localized area given a presumption of root correspondence between a specific previously detected object and a specific newly detected object within that same area. The change detection system establishes the root correspondence as that pair of previously and newly detected objects for which the associated mapping efficiency is maximized. FIG. 1 is a diagram that illustrates conceptually a scan. The subsurface 101 includes a surface 102 with a length 103, a width 104, and a depth 105. For example, the length may be 20 kilometers, the width may be 5 meters, and the depth may be 2 meters. (Although the change detection system is described primarily in reference to detecting subsurface objects using a GPR system, one skilled in the art will appreciate that the change detection system may be used to detect above surface changes such as an explosive emplaced in clutter.) The change detection system may perform processing to extract newly detected objects and update the constellation database within a change detection window 106 that covers the localized neighborhood extending prior to and ahead of the current location along the scan every time the detection system detects another object. The change detection window is a volume that extends for a prescribed window length (e.g., 100 meters) for the width and depth of the medium. FIG. 1 represents the previously detected objects as O's and the newly detected objects as X's. To calculate the mapping efficiencies for potential root correspondences (for all possible pairs of an O and an X in the change detection window), the change detection system considers the subsurface to be divided into cubic cells in xyz space. To speed up the calculation of the mapping efficiency, the change detection system may maintain a data structure indicating the cubic cells that contain a previously detected object. The change detection system may use a binary flag (e.g., 0 or 1) to indicate the absence or presence of a previously detected object within a cubic cell. The change detection system regards each pair of previously and newly detected objects as a potential root correspondence. For a candidate newly detected root correspondence object, the change detection system computes a vector in xyz space from that newly detected object to each of the remaining newly detected objects in the neighborhood. It then determines the endpoints of such vectors emanating from the location of the candidate previously detected object in the root correspondence pair, and counts the number of cells of value 1 that contain the endpoints of those vectors. The mapping efficiency is then the number of such 1s divided by the number of vectors that were considered, and it varies from 0 to 1. The change detection system designates the pair of previously and newly detected objects with the largest mapping efficiency as the root correspondence. The change detection system may use grid cells other than cubes. For example, the grid cells may have a different width, length, and depth. Also, the width, length, and depth of the grid cell need not be constant. For example, depths of the grid cells may be less toward the surface to reflect a higher confidence in the location of detected objects that are nearer to the surface.

In some embodiments, the change detection system generates a cost matrix with one row for each newly detected object in vicinity of the newly detected object in the root pair, and one column for each previously detected object in that same vicinity (excluding the previously detected object in the root pair). For each entry in the cost matrix, the change detection system generates a cost (or score) reflecting belief that the newly detected object associated with that entry does not correspond to the previously detected object associated with that entry, given the root correspondence established as described above. The change detection system calculates the cost for each such pair based on (i) detection fitness for objects in that pair and (ii) topological consistency between those objects. The fitness of a detection is a measure of goodness or strength of an object detection, and it varies from 0 to 1. Topological consistency also varies from 0 to 1, and it reflects the degree of consistency between attributes of the previously and newly detected objects in the pair. These attributes are referred to as edge attributes, and they include the orientation of an object relative to its root, the pointing vector from the root to the object, the orientation angles of the object and its root relative to the pointing vector, and so on. The edge attributes are derived from the attributes of the objects (vertices) that they connect, where the vertex attributes include object location, time of detection, orientation, length, width, elongation, etc. In some embodiments, the topological consistency between a pair of previously and newly detected objects is computed by evaluating the likelihood of the attributes of the edge that connects the previously detected object to its root relative to the attributes of the edge that connects the newly detected object to its root. The joint likelihood of edge attributes is modeled as the product of marginal likelihood functions of one variable for each of the edge attributes. The change detection system provides a marginal likelihood function for each edge attribute that takes the value of the corresponding attribute for the edge that connects the newly detected object to its root as the mode or peak location. The variance of each marginal likelihood function may be specific to each edge attribute, and reflects the degree of uncertainty in attribute values captured by a distributional attributed relational tree as described below in detail. The change detection system then determines the minimal cost assignment (one-to-one mapping) of newly detected objects to previously detected objects from the cost matrix.

In some embodiments, after generating a cost matrix, the change detection system updates the constellation database to reflect the newly detected objects. The change detection system may apply a minimal cost assignment algorithm to identify the correspondences between previously and newly detected objects that represent the most likely correspondence. One suitable minimal cost algorithm is described in Orlin, J. B. and Ahuja, R. K., “New Scaling Algorithms for the Assignment and Minimum Cycle Mean Problems”, Mathematical Programming, Vol. 54, 1992, pp. 41-56, which is hereby incorporated by reference. After identifying the most likely correspondence between the previously and newly detected objects, the change detection system updates the constellation database for the previously detected objects to reflect the attributes of the corresponding newly detected objects. If a newly detected object does not have a corresponding previously detected object, then the change detection system adds that newly detected object to the constellation database.

FIG. 2 is a block diagram that illustrates the overall flow of the change detection system in some embodiments. A constellation database 201 contains the previously detected objects. A “database retrieval” component 202 retrieves previously detected objects from the constellation database, accepts newly detected objects detected by the object detection system on the latest scan, and saves them as new objects. A “root correspondence” component 203 identifies a specific pair of previously and newly detected objects as the root correspondence for the purpose of generating the cost matrix, A “cost matrix generation” component 204 generates the cost matrix. A “change indexing” component 205 generates the change indices for the newly detected objects from the cost matrix. A “minimal cost assignment” component 206 identifies the most likely correspondence between previously and newly detected objects. An “update database” component 207 updates the constellation database based on the established correspondence between the previously and newly detected objects.

In some embodiments, the change detection system represents the newly detected objects as vertices in an attributed relational tree (“ART”). An ART is an attributed graph G with a bi-level tree topology. FIG. 3 illustrates a relational tree with N_(V) vertices (one root V₀ plus N_(V)−1 leaves

{V_(i)}_(i = 1)^(N_(v) − 1))

and N_(E)=N_(V)−1 edges

{E_(k)}_(k = 0)^(N_(E) − 1)

(E_(k) connects V₀ to V_(k+1)). The change detection system uses a relational tree to represent a localized network of newly detected objects detected on the latest scan. The ART ontology defines admissible entity types for vertices (e.g., the type of object detected) and the attributes of its vertices and edges. Examples of attributes for the vertices and edges are represented in Table 1.

TABLE 1 Vertex Attributes A_(i) s fitness of the detection ∈ [0, 1] (x, y, z) xyz location (t₀, t₁) time (first, last) detected θ long axis angle in xy ∈ (−π/2, π/2) L, w Length, width ≧ 0 λ = L/w elongation 0 or ≧ 1 Edge Attributes a_(i) (Δ_(x), Δ_(y), Δ_(z)) edge pointing vector Δ_(t) (t₁)_(leaf) − (t₁)_(root) α angle from the long axis of the root object to the edge vector from the root object and this leaf object ∈ (−π/2, π/2) β angle from the long axis of this leaf object to the edge vector from the root object and this leaf object ∈ (−π/2, π/2) γ angle from the vector of edge 0 in the DART to the edge vector from the root object of this leaf object ∈ (−π, π) δ angle from the long axis of the leaf object to the long axis of the root object ∈ (−π/2, π/2)

The change detection system may use a distributional ART or DART D, which is a stochastic attributed relational tree model whose edge attributes {a_(i,k)i=0 . . . n_(d)−1, k=0 . . . N_(E)−1} are replaced by marginal densities (likelihood functions) p(a_(i,k)|D) that impose probabilistic uncertainty on the edge attribute values (FIG. 3). The change detection system may model these likelihoods as symmetric functions in one dimension (e.g., with a rectangular, triangular, or clipped Gaussian pulse shape). The change detection system considers the attributes to be statistically independent. Thus, the joint likelihood p_(k)(a|D) for edge E_(k) is expressed as the product of marginal likelihoods p(a_(i,k)|D) i=0 . . . n_(a)−1. The change detection system uses normalized likelihoods p(a_(i,k)|D) as shown in FIG. 3, to quantify the topological consistency between DART D and the constellation database of previously detected objects using the following equations:

$\begin{matrix} {{{\overset{\sim}{p}}_{k}\left( {aD} \right)} = {\prod\limits_{i = 0}^{n_{a} - 1}{\overset{\sim}{p}\left( {a_{i,k}D} \right)}}} & \left( {1a} \right) \\ {{\overset{\sim}{p}\left( {a_{i,k}D} \right)}\overset{\Delta}{=}{{{p\left( {a_{i,k}D} \right)}/\max}\; {p\left( {a_{i,k}D} \right)}}} & \left( {1b} \right) \end{matrix}$

The change detection system represents newly detected objects within a localized areas as

$\Omega_{1}\overset{\Delta}{=}{\left\{ {V_{k}\left( \Omega_{1} \right)} \right\} \begin{matrix} {m_{1} - 1} \\ {k = 0} \end{matrix}}$

and previously detected objects within that same general area as

$\Omega_{0}\overset{\Delta}{=}{\left\{ {V_{j}\left( \Omega_{0} \right)} \right\} \begin{matrix} {m_{0} - 1} \\ {j = 0.} \end{matrix}}$

The change detection system identifies a root correspondence [V₀(Ω₀), V₀(Ω₁)] between Ω₀ and Ω₁ such that vertex V₀(Ω₀) of Ω₀ and vertex V₀(Ω₁) of Ω₁ represent the previously and newly detected object in the root correspondence. Algorithm 1 provides an algorithm for identifying a root correspondence.

Algorithm 1 e(i, j) = 0 for i′ = 0 . . . m₁ − 1 (i′ ≠ i)  a. Compute the direction vector from V_(i) (Ω₁) to V_(i′) (Ω₁):  [Δ_(x), Δ_(y), Δ_(z)] =  [x(V_(i′)(Ω₁)) − x(V_(i) (Ω₁)), y(V_(i′)(Ω₁)) − y(V_(i) (Ω₁)), z(V_(i′)(Ω₁)) − z(V_(i) (Ω₁))]  b. Find the grid cell that the direction vector points to if it starts from  V_(j) (Ω₀):   $\begin{matrix} {{\left( {i^{''},j^{''},k^{''}} \right) = {{int}\left( \frac{{x\left( {V_{j}\left( \Omega_{0} \right)} \right)} + \Delta_{x} - x_{\min}}{ɛ} \right)}},} \\ {\left( \frac{{y\left( {V_{j}\left( \Omega_{0} \right)} \right)} + \Delta_{y} - y_{\min}}{ɛ} \right),\left( \frac{{z\left( {V_{j}\left( \Omega_{0} \right)} \right)} + \Delta_{z} - z_{\min}}{ɛ} \right)} \end{matrix}\quad$  c. Increment e(i, j) if that grid cell contains an element of Ω₀:  if cell (i″, j″, k″) = 1 then e(i, j) = e(i, j) + 1 ${e\left( {i,j} \right)} = {\frac{1 + {e\left( {i,j} \right)}}{m_{1}} \in \left\lbrack {\frac{1}{m_{1}},1} \right\rbrack}$

The change detection system establishes the root correspondence for the previously and newly detected objects to maximize mapping efficiency. The change detection system may define mapping efficiency e(i,j) as the fraction of the m₁ vertices in Ω₁ that have possible correspondences in Ω₀ for the potential root correspondence [V_(j)(Ω₀)∈Ω₀,V_(i)(Ω₁) ∈Ω₁], and as e(i,j)=0 if V_(j)(Ω₀) ∈Ω₀ and V_(i)(Ω₁) ∈Ω_(i) are inconsistent as to their type, orientation, and physical dimensions, The change detection system generates a binary spatial index grid for Ω₀ in x_(y)z space (e.g., representing the area along the entire scan or along a portion of the scan). The cubic grid cells may have a width defined by the error tolerance in relative locations of objects, and the grid origin may be at the minimum x, y, and z over all previously detected objects within Ω₀. The change detection system sets the value of the grid cell to 1 if it contains the centroid of an object from Ω₀. Once the change detection system has identified a root correspondence, the root vertices may be designated as the vertices of index 0 in Ω₀ and Ω₁.

The change detection system constructs a DART D by imposing uncertainty on the ART formed from Ω₁ with V₀(Ω₁) as the root. The change detection system replaces each edge attribute a_(i,k) in the ART with a likelihood function p(a_(i,k)|D) in DART D, where the peak and width of the likelihood function vary in accordance with the values of the attributes of the newly detected objects.

The change detection system transforms change detection into a minimal cost assignment problem in which newly detected objects captured in DART D are assigned to previously detected objects captured in the subset Ω₀ of the constellation database. Once formulated, this minimal cost assignment problem can be solved using standard cost scaling methods. In some embodiments, the change detection system employs a cost function c that depends on a variable u that combines fitnesses of detections associated with a corresponding pair of previously and newly detected objects, and a variable v that quantifies topological consistency for that pair. The variables u and v both vary from zero to one, and c(u,v) is a continuous function defined on the unit square 0≦u, v≦1, The change detection system assumes that complete topological inconsistency (v=0) will lead to the highest possible cost (c=1) and that complete absence of fitness (u=0) will also lead to the highest possible cost (c=1) , The lowest possible cost (c=0) applies only when topological consistency and detection fitness are both perfect (u=v=1) The change detection system may further take the cost trend for perfect topological consistency (v=1) as linear and decreasing from one to zero with fitness u These conditions lead to the following boundary conditions for cost function c;

c(u,0)=1   (2a)

c(u,1)=1−u   (2b)

The simplest continuous function from zero to one over the unit square that satisfies these boundary conditions is the bilinear DART cost function represented as follows:

c(u,v)=1−uv   (3)

The change detection system characterizes topological matching of DART D to Ω₀ as a minimal cost assignment problem. To accomplish this, it generates a cost matrix {c_(j,k)} from the cost function c(u,v). The rows j of {c_(j,k)} represent previously detected objects, and the columns k represent newly detected objects. The elements c_(j,k) ∈ [0,1] reflect the cost of making the determination that previously detected object j and newly detected object k are really the same object. The change detection system evaluates the cost matrix by solving the minimal cost assignment problem for that cost matrix.

The cost matrix {c_(j,k)} is an (m₀−1)×(m₁−1) matrix because the root correspondence [V₀(Ω₀) ∈Ω₀, V₀(Ω₁) ∈Ω₁] has already been established between one pair of objects. The element c_(j,k) thus represents the cost of mapping previous object j+1 from Ω₀ to recent object k+1 from Ω₁ (i.e leaf k+1 of DART D). The cost matrix elements c _(j,k) may be derived from the cost function c(u,v) as follows:

$\begin{matrix} {c_{j,k} = {c\left( {u_{j,k},v_{j,k}} \right)}} & \left( {4a} \right) \\ {u_{j,k} = \frac{{s\left( {V_{j + 1}\left( \Omega_{0} \right)} \right)} + {s\left( {V_{k + 1}\left( \Omega_{1} \right)} \right)}}{2}} & \left( {4b} \right) \\ {v_{j,k} = {{\overset{\sim}{p}}_{k}\left( {{a\left( {{V_{0}\left( \Omega_{0} \right)}->{V_{j + 1}\left( \Omega_{0} \right)}} \right)}D} \right)}} & \left( {4c} \right) \end{matrix}$

where s(V) represents the fitness of vertex V, V₀(Ω₀)→V_(j+1)(Ω₀) represents the edge E_(j+1) from V₀(Ω₀) to V_(j+1)(Ω₀) and a(E_(j+1)) represents the vector of attributes for edge E_(j+1). The fitness u_(j,k) in Equation 4b is the mean of fitnesses for the newly detected object that corresponds to vertex V_(k+1) in DART D and the previously detected object that corresponds to vertex V_(j+1) from Ω₀. The combination of Equations 3 and 4a-c results in the following equation for cost matrix elements c_(j,k);

$\begin{matrix} {c_{j,k} = {1 - {{{\overset{\sim}{p}}_{k}\left( {{a\left( {{V_{0}\left( \Omega_{0} \right)}->{V_{j + 1}\left( \Omega_{0} \right)}} \right)}D} \right)} \cdot \frac{{s\left( {V_{j + 1}\left( \Omega_{0} \right)} \right)} + {s\left( {V_{k + 1}\left( \Omega_{1} \right)} \right)}}{2}}}} & (5) \end{matrix}$

For k=0 . . . m₁−2, the change index τ_(k+1) quantifies the likelihood (from 0 to 1) that the newly detected object represented by leaf k+1 of DART D constitutes a change relative to the constellation of previously detected objects. The change detection system computes the change index τ_(k+1) for DART leaves as the minimum of the elements in column k of the cost matrix. For the DART root, the change index is expressed as the product of root fitness and the mean of the change indices for the DART leaves. Although change index calculations use the cost matrix, the calculations do not require the cost matrix to be evaluated.

Algorithm 2 1. Generate the cost matrix and compute change indices for the leaves of DART D:  for k = 0 . . . m₁ − 2   for j = 0 . . . m₀ − 2     $c_{j,k} = {1 - {{{{\overset{\sim}{p}}_{k}\left( {{a\left( {V_{0}\left( \Omega_{0} \right)}\rightarrow{V_{j + 1}\left( \Omega_{0} \right)} \right)}D} \right)} \cdot \; \frac{{s\left( {V_{j + 1}\left( \Omega_{0} \right)} \right)} + {s\left( {V_{k + 1}\left( \Omega_{1} \right)} \right)}}{2}}\quad}}$     $\tau_{k + 1} = {\min\limits_{{j = {{0\mspace{11mu} \ldots \mspace{11mu} m_{0}} - 2}}\;}c_{j,k}}$ 2. Compute the change index for the root of DART D:   $\tau_{0} = {{\frac{{s\left( {V_{0}\left( \Omega_{0} \right)} \right)} + {s\left( {V_{0}\left( \Omega_{1} \right)} \right)}}{2} \cdot \frac{1}{m_{1} - 1}}{\sum\limits_{k = 1}^{m_{1} - 1}\tau_{k}}}$

The change detection system learns the true structure of the network of previously detected objects over time by updating the constellation database in real time as the vehicle moves down-track. Objects never before seen are newly inserted into the constellation database with their computed attribute values. Attributes of previously seen objects are updated recursively with attribute values for the most recently acquired instances of those objects (i.e., the corresponding newly detected objects). Updates to the constellation database facilitate change detection for objects that may be encountered in the future. Also, the performance of the change detection system benefits over time from improvements in the accuracy of the constellation database.

As for change index calculations, the change detection system generates a cost matrix in order to update the constellation database. However, in order to update the constellation database, the change detection system also evaluates the cost matrix by solving a minimal cost assignment problem. The result of the cost matrix evaluation may be that for k=0 . . . m₁−1, object k of Ω₁ is assigned to object j(k) of Ω₀, where j(k)<0 if object k of Ω₁ is new (unassigned). If object V_(k)(Ω₁) is unassigned, the change detection system adds that object to the constellation database as a new object. Otherwise, the change detection system updates the attributes of object V_(j(k))(Ω₀) in the constellation database recursively with the attributes of newly detected object V_(k)(Ω₁) . FIG. 4 illustrates the process of assigning previously detected objects to newly detected objects. After generating the cost matrix 401, the change detection system applies the minimal cost algorithm to identify the pairs of previously and newly detected objects that result in the minimal cost. In the example of FIG. 4, the pairs of objects V₁(Ω₀) and V₁(Ω₁), V₂(Ω₀) and V₂ (Ω₁) , and V₄(Ω₀) and V₃(Ω₁) have the minimum cost of assignment. In addition to the object attributes of Table 1, the change detection system may also maintain object attributes that include the number of times an object was detected (e.g., to assist in the recursive updating) and its maximum fitness over all detections.

FIG. 5 is a block diagram of the components of the change detection system in some embodiments. The change detection system includes a constellation database 501, a store for newly detected objects 502, a cost matrix 503, and a grid data structure for root correspondence calculations 504. The constellation database contains the objects detected on previous scans and their attributes. The newly detected object store contains the objects detected on the latest scan along with their attributes. The cost matrix store is used by the change detection system to store the cost matrix. The grid data structure identifies the cubic cells within the xyz space of a localized portion of the scan that contain previously detected objects. The change detection system also includes a “find root correspondence” component 510, a “generate cost matrix” component 520, a “compute change indices” component 530, and an “update database” component 540. The “find root correspondence” component invokes a “compute mapping efficiency” component 512 to calculate a mapping efficiency and then identifies the root correspondence based on the mapping efficiencies. The “generate cost matrix” component invokes a “compute topological consistency” component 522 to generate the costs for pairs of previously and newly detected objects. The “compute change indices” component computes the change index for each newly detected object based on the cost matrix. The “update database” component updates the constellation database based on the correspondence between previously and newly detected objects as determined from the cost matrix.

The computing devices on which the change detection system may be implemented may include a central processing unit and memory and may include, particularly in the case of a system management workstation, input devices (e.g., keyboard and pointing devices), output devices (e.g., display devices), and storage devices (e.g., disk drives). Computer-readable media include computer-readable storage media and data transmission media, The computer-readable storage media include memory and other storage devices that may have recorded upon or may be encoded with computer-executable instructions or logic that implement the change detection system. The data transmission media is media for transmitting data using signals or carrier waves (e.g., electromagnetism) via a wire or wireless connection. Various functions of the change detection system may also be implemented on devices using discrete logic or logic embedded as an application-specific integrated circuit. The change detection system may be implemented on a computer system that is local to a vehicle to which a linear array of penetrating radar antennas is mounted for processing the return signals locally. Alternatively, one or more of the components may be implemented on a computer system that is remote from the linear array. In such an alternative, the data used by the various components (e.g., return signals and image frames) may be transmitted between the local computing system and remote computer system and between remote computing systems.

The change detection system may be described in the general context of computer-executable instructions, such as program modules, executed by one or more computers or other devices. Generally, program modules include routines, programs, objects, components, data structures, and so on that perform particular tasks or implement particular abstract data types. Typically, the functionality of the program modules may be combined or distributed as desired in various embodiments.

FIG. 6 is a flow diagram that illustrates the processing of the “find root correspondence” component of the change detection system in some embodiments. The component calculates the mapping efficiency for pairs of previously and newly detected objects. In block 601, the component selects the next newly detected object. In decision block 602, if all the newly detected objects have already been selected, then the component returns a pair of previously and newly detected objects for which the mapping efficiency is largest as the root correspondence, else the component continues at block 603. In block 603, the component selects the next previously detected object. In decision block 604, if all the previously detected objects have already been selected, then the component loops to block 601 to select the next newly detected object, else the component continues at block 605. In block 605, the “compute mapping efficiency” component calculates the mapping efficiency for a hypothetical root correspondence between a specific pair of previously and newly detected objects. In decision block 606, if the mapping efficiency is perfect, then the component returns the previously and newly detected object selected as the root correspondence, else the component loops to block 603 to select the next previously detected object.

FIG. 7 is a flow diagram that illustrates the processing of the “compute mapping efficiency” component of the change detection system in some embodiments. The component computes mapping efficiency for a hypothetical root correspondence between a pair of previously and newly detected objects passed in as input. In block 701, the component checks consistency of the vertex attributes of the previously detected object and the newly detected object to ensure, for example, that the elongation and orientation are similar enough to indicate that they may represent the same object. In decision block 702, if the attributes are consistent, then the component continues at block 704, else the component continues at block 703. In block 703, the component sets the mapping efficiency to zero, indicating that the input pair of previously and newly detected objects cannot represent a root correspondence, and then returns. In block 704, the component selects the next newly detected object from the set of newly detected objects in the vicinity of the input newly detected object. In decision block 705, if all newly detected objects in the vicinity have already been selected, then the component continues at block 706, else the component continues at block 707. In block 706, the component computes the mapping efficiency for the input pair of previously and newly detected objects, and then returns. In block 707, the component computes a direction vector from the newly detected object of the input pair to the selected newly detected object. In block 708, the component determines the cubic grid cell of the grid data structure that contains the endpoint of the direction vector, assuming it starts at the previously detected object of the input pair. In decision block 709, if the cubic grid cell contains a previously detected object, then the component continues at block 710, else the component loops to block 704 to select the next newly detected object in the vicinity of the input newly detected object. In block 710, the component increments the mapping efficiency for the input pair and then loops to block 704 to select the next newly detected object in the vicinity of the input newly detected object.

FIG. 8 is a flow diagram that illustrates the processing of the “generate cost matrix” component of the change detection system in some embodiments. The previously and newly detected objects in the root correspondence are supplied as input to this component. In block 801, the component selects the next newly detected object in the vicinity of the newly detected object of the root pair. In decision block 802, if all such objects have already been selected, then the component returns, else the component continues at block 803. In block 803, the component selects the next previously detected object in the vicinity of the previously detected object of the root pair. In decision block 804, if all such objects have already been selected, the component loops to block 801 to select the next newly detected object in the vicinity of the newly detected object of the root pair, else the component continues at block 805. In block 805, the component calculates the fitness u of the selected pair of previously and newly detected objects. In block 806, the component invokes the “compute topological consistency” component to calculate topological consistency v for the selected pair of previously and newly detected objects. In block 807, the component generates the cost of assigning the selected previously detected object to the selected newly detected object from the fitness u and the topological consistency v , and then loops to block 803 to select the next previously detected object in the vicinity of the previously detected object of the root pair,

FIG. 9 is a flow diagram that illustrates the processing of the “compute topological consistency” component of the change detection system in some embodiments. For a pair of previously and newly detected objects, the inputs to this component are (i) the DART that contains the newly detected object, and (ii) the edge connecting the previously detected object to the previously detected object of the root pair. The output of this component is the degree of topological consistency (from 0 to 1) between (i) the edge connecting the newly detected object to the newly detected object of the root pair in the DART, and (ii) the edge connecting the previously detected object to the previously detected object of the root pair in the constellation database. In block 901, the component initializes the normalized joint likelihood over all edge attributed to 1. In block 902, the component selects the next edge attribute. In decision block 903, if all attributes associated with the edge connecting previously detected objects have already been selected, then the component returns the joint likelihood of attributes for the edge in (ii) above given the DART in (i) above normalized to a value from 0 to using Equation 1a, else the component continues to block 904. In block 904, the component computes the normalized marginal likelihood for the next selected attribute of the edge connecting previously detected objects using Equation 1b. In block 905, the component updates the product of normalized likelihoods over all edge attributes with the marginal likelihood from block 904, in accordance with Equation 1a, and then loops to block 902 to select the next edge attribute.

FIG. 10 is a flow diagram that illustrates the processing of the “compute change indices” component of the change detection system in some embodiments. The component generates the cost matrix and identifies the change index for each newly detected object. In block 1001, the component invokes the “generate cost matrix” component. In block 1002, the component selects the next newly detected object that is not the newly detected object of the root pair. In decision block 1003, if all such newly detected objects have already been selected, then the component continues at block 1005, else the component continues at block 1004. In block 1004, the component computes the change index for the selected newly detected object as the minimum of cost matrix elements for that newly detected object over all previously detected objects other than the previously detected object of the root pair, and then loops to block 1002 to select the next newly detected object. In block 1005, the component computes the change index for the newly detected object of the root pair as the product of the mean of change indices over all newly detected non-root objects and the mean of fitnesses for the objects in the root pair, and then returns.

FIG. 11 is a flow diagram that illustrates the processing of the “update constellation database” component of the change detection system in some embodiments. The component updates the constellation database based on a minimal cost assignment of previously detected objects to newly detected objects. In block 1101, the component applies a minimum cost assignment algorithm to the cost matrix (i.e., it evaluates the cost matrix) to determine the most likely correspondences of previously detected objects to newly detected objects. In block 1102, the component selects the next newly detected object. In decision block 1103, if all the newly detected objects have already been selected, then the component returns, else the component continues at block 1104. In decision block 1104, if the selected newly detected object has been assigned to a previously detected object, then the component continues at block 1105, else the component continues at block 1106. In block 1105, the component updates the attributes of this previously detected object in the constellation database with attributes of the selected newly detected object, and then loops to block 1102 to select the next newly detected object. In block 1106, the component adds the selected newly detected object to the database as a new object and then loops to block 1102 to select the next newly detected object.

From the foregoing, it will be appreciated that specific embodiments of the invention have been described herein for purposes of illustration, but that various modifications may be made without deviating from the scope of the invention. Accordingly, the invention is not limited except as by the appended claims. 

I/We claim:
 1. A method in a computing device for determining whether a designated newly detected object represents an object that does not correspond to an object is a constellation of previously detected objects, the method comprising: for each of a plurality of edge attributes, providing a likelihood function a value for the edge attribute; selecting a root previously detected object and a root newly detected object as having a root correspondence; calculating previous values for edge attributes for edges connecting the previously detected object to the root previously detected object from attributes of the previously detected objects; calculating new values for edge attributes for edges connecting newly detected objects to the root newly detected object from attributes of the newly detected objects; and indicating that the designated newly detected object is not a previously detected object based on combining a likelihood for each edge attribute, the likelihood for an edge attribute generated by the likelihood function for that edge attribute applied to the previous value of that edge attribute given the new value of that edge attribute.
 2. The method of claim 1 including assigning a cost to each pair of a newly detected object and a previously detected object, the cost being derived from the detection fitnesses and combined likelihoods of the edge attributes that define topological consistency and applying a minimal cost assignment algorithm to the costs to identify possible correspondences between each newly detected object and a previously detected object.
 3. The method of claim 2 including indicating a newly detected object corresponds to a previously detected object based on assignment of the minimal cost assignment algorithm.
 4. The method of claim 1 including generating a change index for the designated newly detected object indicating whether the designated newly detected object does not correspond to a previously detected object based on a minimum computed assignment costs to the previously detected objects.
 5. The method of claim 1 wherein the change index is further based on fitness of detection of the object.
 6. The method of claim 1 wherein the attributes of the objects are selected from a group consisting of location of the object, time the object was last detected, angle of long axis of the object, and length and width of the object.
 7. The method of claim 1 wherein the edge attributes are selected from a group consisting of a pointing vector from a root detected object to a leaf detected object, difference in times of most recent detection of the root detected object and the leaf detected object, angle between long axis of the root or leaf detected object and vector from that root detected object to the leaf detected object, angle from a vector from the root detected object to a first leaf detected object to a vector from the root detected object to the leaf detected object, and angle between the long axis of the root detected object and the long axis of the leaf detected object.
 8. A computer-readable storage device storing computer-executable instructions for controlling a computing device to identify newly detected objects that correspond to previously detected objects; by a method comprising: for each of a plurality pairs of a previously detected object and a newly detected object, generating a score based on a likelihood that the previously detected object corresponds to the newly detected object; generating a mapping from newly detected objects to corresponding previously detected object based on the generated scores; and for each newly detected object that is mapped to a previously detected object, indicating that the newly detected object corresponds to that previously detected object.
 9. The computer-readable storage device of claim 8 wherein the generating of the mapping includes apply a minimal cost assignment algorithm to costs represented by the generate scores.
 10. The computer-readable storage device of claim 8 wherein when no previously detected object maps to a newly detected object, indicating that the newly detected object is not a previously detected object.
 11. The computer-readable storage device of claim 8 including: for each of a plurality of edge attributes, providing a likelihood function a value for the edge attribute; selecting a root previously detected object and a root newly detected object as having a root correspondence; calculating previous values for edge attributes for edges connecting the previously detected object to the root previously detected object from attributes of the previously detected objects; calculating new values for edge attributes for edges connecting newly detected objects to the root newly detected object from attributes of the newly detected objects; and generating the likelihood by combining a likelihood for each edge attribute, the likelihood for an edge attribute generated by the likelihood function for that edge attribute applied to the previous value of that edge attribute given the new value of that edge attribute.
 12. The computer-readable storage device of claim 11 wherein selecting a root previously detected object and a root newly detected object as having a root correspondence includes for pairs of a previously detected object and a newly detected object, evaluating the objects of the pair as having a root correspondence by calculating a mapping efficiency indicating how well the newly detected object corresponds to the previously detected object based on locations of the other newly detected objects in a vicinity of a root object relative to locations of other previously detected objects in the vicinity of a root object.
 13. The computer-readable storage device of claim 8 wherein the objects are detected based on return signals acquired by receivers from ground-penetrating radar signals emitted by transmitters.
 14. A computing device for identifying newly detected objects that do not correspond to a previously detected object; comprising: a component that, for each of a plurality of pairs of a previously detected object and a newly detected object, generates a score based on a likelihood that the previously detected object corresponds to the recently detected object; a component that generates a mapping from newly detected objects to corresponding previously detected objects based on the generated scores; and a component that, for each newly detected object that is not mapped to a previously detected object, indicating that the newly detected object does not correspond to a previously detected object.
 15. The computing device of claim 14 wherein the component that generates the mapping applies a minimal cost assignment algorithm to costs represented by the generate scores,
 16. The computing device of claim 14 including a component that selects a root previously detected object and a root newly detected object as having a root correspondence; calculates previous values for edge attributes for edges connecting the previously detected object to the root previously detected object from attributes of the previously detected objects; calculates new values for edge attributes for edges connecting newly detected objects to the root newly detected object from attributes of the newly detected objects; and generates the likelihood by combining a likelihood for each edge attribute, the likelihood for an edge attribute generated by the likelihood function for that edge attribute applied to the previous value of that edge attribute given the new value of that edge attribute.
 17. The computing device of claim 16 wherein the component that selects a root previously detected object and a root newly detected object as having a root correspondence, for pairs of a previously detected object and a newly detected object, calculates a mapping efficiency indicating how well the newly detected object corresponds to the previously detected object based on locations of the other newly detected objects relative to locations of other previously detected objects.
 18. The computing device of claim 17 wherein the objects are detected based on return signals acquired by receivers from ground-penetrating radar signals emitted by transmitters.
 19. The computing device of claim 18 wherein the component that generates the mapping applies a minimal cost assignment algorithm to costs represented by the generate scores. 